package net.zjitc.summary.user;

import javax.swing.text.html.HTMLDocument;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

/**
 * @Author admin
 * @Date 2019/4/16 16:11
 * HashMap(键值对，键是唯一的，值可以不唯一)
 */
public class UserDaoHashMap implements UserDao {
    /*HashMap存放好用户，用户名做key，用户对象做值*/
    HashMap<String, User> hashMap = new HashMap<String, User>();

    @Override
    public void register(User user) {
        /*1、首先判断hashMap中是否存在该用户名：
         *      实际可以判断 键是user.getName（）
         * 2、若存在，提示用户名重复
         * 3、若不存在，添加到hashMap*/
        Set<String> set = hashMap.keySet();
        boolean flag = set.contains(user.getName());
        if (flag) {
            System.out.println("注册失败，用户名重复了");
        } else {
            hashMap.put(user.getName(), user);
            System.out.println("注册成功！");
        }
    }

    @Override
    public User login(String name, String password) {
        Iterator iterator = hashMap.keySet().iterator();
        while (iterator.hasNext()) {
            String key = (String) iterator.next();
            User value = hashMap.get(key);
            if (value.getName().equals(name)) {
                value.getPassword().equals(password);
                return value;
            }
        }
        return null;
    }

    @Override
    public void selectAll() {
        Iterator<String> iterator = hashMap.keySet().iterator();
        while (iterator.hasNext()) {
            String key = iterator.next();
            User value = hashMap.get(key);
            System.out.println(value);
        }
    }

    @Override
    public void delete(String name) {
        /*判断hashMap中是否存在key为name的元素
         * 若存在，则删除
         * 若不存在，则提示*/
        Set<String> set=hashMap.keySet();
        boolean flag=set.contains(name);
        if (flag){
            hashMap.remove(name);
            System.out.println("删除成功");
        }else {
            System.out.println("您要删除的用户不存在");
        }
    }
}
